The majority of medium and large data centres use a Fibre Channel (FC) based storage area network (SAN) to attach host servers to storage controllers. One of the common trends seen in most of the data centres is that with an increase in work load, the demand to increase SAN bandwidth also rises. For example data centres that have deployed a 2 Gb/s or 4 Gb/s FC SAN infrastructure a few years ago are likely to now need additional bandwidth and will be looking to upgrade their SAN.
There are a variety of ways in which a SAN can be upgraded.
1. Add more ports between host servers and the SAN and between the storage controller and the SAN and use multi-pathing technology to spread the I/O workload across the alternative paths (load balancing).
2. Replace the existing FC SAN with the latest (8 Gb/s FC) technology to increase the performance of the SAN without increasing the number of ports.
3. Replace the existing FC SAN with a 1 Gb/s or 10 Gb/s Ethernet SAN and use either FC over Ethernet (FCoE) or the iSCSI protocol.
4. Keep the existing FC SAN and use option 2 or 3 to create an additional SAN. Use multi-pathing technology to spread the I/O workload across the existing SAN and the new SAN.
FC is currently the predominate technology used for constructing SANs. It is a mature technology that offers very good performance (in terms of bandwidth, in terms of I/O operations per second (IOPs), and in terms of latency) with relatively low overheads in both the storage controller and the host server. The main drawback of FC is that it is expensive.
Internet Small Computer System Interface (iSCSI) is emerging as one of the acceptable SAN technologies in modern day data centres. Most of the storage controllers and host servers now support iSCSI. Using 1 Gb/s Ethernet to create an iSCSI SAN is a very cheap way of connecting host servers to storage controllers. However, iSCSI is much more CPU intensive (even with iSCSI offload hardware) than FC which means that IOPs performance will usually be lower than the equivalent that can be obtained using a FC SAN. Where iSCSI performs well is with high bandwidth workloads where a small number of larger I/O requests is able to saturate the iSCSI link bandwidth without significant CPU overheads.
Using 10 Gb/s Ethernet to create a 10 Gb/s iSCSI SAN is also possible, however the cost of 10 Gb/s Ethernet hardware is more comparable to that of a FC SAN, although it may be possible to share the hardware in the host servers for other networking.
Fibre Channel over Ethernet (FCoE) is a relatively new technology that allows FC frames to be transported over a 10 Gb/s Ethernet network. It offers the same performance characteristics as FC. The main drawback of FCoE is that it is expensive, it currently requires specialist Ethernet switches and the technology is still maturing.
There are many multi-pathing solutions available and most modern operating systems now include multi-pathing drivers as part of the base operating system. Many of the multi-pathing drivers support both FC and iSCSI based I/O to the same storage Logical Units (LU)s. The simplest multi-pathing drivers just implement redundancy by issuing all I/O requests across one path and only switching to use an alternative path when I/O requests fail. More sophisticated multi-pathing drivers implement load-balancing schemes to attempt to spread I/O requests across the multi-paths and hence achieve better performance.
The load balancing algorithms are typically very simple, for example:
1. Preferred path. All I/O requests to a given LU will be routed via the same path, different LUs will be assigned different paths so that so long as I/O requests are submitted to multiple LUs in parallel the workload will be spread across the available paths.
2. Round-robin I/O requests across all available paths. So if there are two paths across a SAN to a particular storage LU the multi-pathing driver will submit the first I/O request via one path, the second I/O request via the second path, the third I/O via the first path, etc.
3. Queue depth based path selection. The path with the least number of active I/O requests will be chosen when starting a new I/O request. Hence if there are two paths and one path has 5 active I/O requests while the other has 3 active I/O requests then the second path will be chosen when starting a new I/O request.
Using a multi-pathing driver with paths across SANs with different performance characteristics (for example, a mixture of FC and iSCSI paths to the same storage LU) has the problem that current multi-pathing drivers do not differentiate between the performance characteristics of the different paths and therefore performance is likely to be reduced to that of the slowest path.
Therefore, there is a need in the art to address the aforementioned problem.